perm filename COMT.PAL[HAL,HE]2 blob sn#158955 filedate 1975-05-15 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00003 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	  Test of condition monitors
C00004 00003	  Save the following for another time.
C00005 ENDMK
C⊗;
;  Test of condition monitors
	XPRINT
	L45	;Say hello
	XCMMAK	
	20	;CM at 20
	L30	;Code at L30 for checker
	L31	;Code at L31 for body
	XMVAR	;
	10	;X
	12	;y
	0
	XPUSH	;X ← L41
	L41
	XCHNGE	
	10
	XPUSH	;Y ← L41.5 (= 0)
	L41.5
	XCHNGE	
	12
	XCMENB	;Enable checker
	20
L32:	XPRINT
	L42	;Say "decrementing"
	XGTVAL	;X ← X - 1
	10	;
	XPUSH	;
	L43	;Push 1
	XSSUB	;Subtract
	XCHNGE	;
	10	;
	XGTVAL	;
	12	;Y=0?
	XJUMPC	;
	2	;
	L32	;If so, loop
	XCMDEST	;else get rid of checker
	20	;
	0
	XTERMINATE;and go away

L30:	XCMSKED	;Checker body
	XPRINT	;Say "."
	L46	;
	XGTVAL	;X≤0?
	10	;
	XJUMPC	;
	7	;if GT then jump
	L30	;
	XCMTRIG	;Yes.  trigger
	XJUMP	;
	L30	;

L31:	XCMBWT	;Wait for signal
	XPRINT
	L44	;Say "zero"
	XPUSH	;
	L41	;SET Y ← 10.0
	XCHNGE	;
	12	;
	XJUMP	;
	L31	;

;data area
L41:	41040	;10.0
	0
L41.5:	0	;0.0
	0
L42:	ASCIE </
	DECREMENTING/>
L43:	40200	;1.0
	0
L44:	ASCIE </
	ZERO/>
L45:	ASCIE </
	TEST OF CONDITION CHECKERS
/>
L46:	ASCIE </./>

COMMENT ⊗  Save the following for another time.

;  SMALL TEST OF ARITHMETIC
L1:	XMVAR
	10	;X
	12	;Y
	14	;Z
	16	;W
	0
	XPUSH	;X ← L103
	L103
	XCHNGE
	10
	XPUSH	;Y ← L105
	L105
	XCHNGE
	12
	XPUSH	;Z ← L107
	L107
	XCHNGE
	14

	XGTVAL	;W ← X ⊗ Y ⊗ Z
	10
	XGTVAL
	12
	XGTVAL
	14
L2:	XVMAKE
	XCHNGE
	16
	XTERMINATE

L103:		;VECTOR(44.5, 44.5, 44.5, 2)
	41462
	0
	41462
	0
	41462
	0
	40400
	0

L105:		;VECTOR(10, 10, 10, 1)
	41040
	0
	41040
	0
	41040
	0
	40200
	0

L107:		;VECTOR(20, 20, 20, 1)
	41240
	0
	41240
	0
	41240
	0
	40200
	0
⊗  end of commented out portion